package practice_2025_7_21;

import java.util.*;

public class Main {
    /**
     * 重排字符串
     * 贪心
     * @param args
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        String str = sc.next();
        Map<Character, Integer> hash = new HashMap<>();
        char maxCh = str.charAt(0);
        int maxCount = 1;
        for(char ch: str.toCharArray()) {
            hash.put(ch, hash.getOrDefault(ch, 0) + 1);
            if (hash.get(ch) > 0) {
                maxCh = ch;
                maxCount = hash.get(ch);
            }
        }
        if (maxCount > (n + 1) / 2) {
            System.out.println("no");
        } else {
            System.out.println("yes");
            char[] res = new char[n];
            // 先处理奇数
            char[] chs = new char[hash.size()];
            int index = 0;
            for (char ch : hash.keySet()) {
                if (ch != maxCh) {
                    chs[index++] = ch;
                }
            }
            index = 0;
            // 处理奇数
            for (int i = 0; i < n; i += 2) {
                res[i] = maxCh;
                maxCount--;
                if (maxCount <= 0) {
                    maxCh = chs[index];
                    maxCount = hash.get(maxCh);
                    index++;
                }
            }
            // 再处理偶数
            for (int i = 1; i < n; i += 2) {
                res[i] = maxCh;
                maxCount--;
                if (maxCount <= 0) {
                    maxCh = chs[index];
                    maxCount = hash.getOrDefault(maxCh, 1);
                    index++;
                }
            }
            System.out.println(new String(res));
        }
    }
}